When computers are initially turned on or reset, they typically go through a “booting” process. When a computer “boots” a built-in diagnostic program known as a power-on self-test (POST) is performed wherein various tests are run to confirm core components of the computer system are present and functioning properly and wherein the registers within certain hardware devices are initialized. Part of performing the POST involves loading the basic input and output system (BIOS) code into memory. A computer system requires BIOS to control the basic hardware operations, such as interactions with disk drives, the display, the keyboard, and other peripheral devices. After performing the POST, the computer typically loads an operating system (OS).
More specifically, the BIOS is a collection of instructions known as firmware routines typically hardwired into a read-only-memory (ROM) device of a computer used by a processor of a computer to identify, initialize, allocate configure and manage other system hardware. The BIOS is the lowest-level software in the computer system acting as an interface between the hardware (especially the processor) and higher level programs such as the OS. By providing a set of low-level routines the BIOS enables the OS to interface with different hardware devices while in operation, thus facilitating the operation of various software applications. The BIOS is also responsible for allowing control of a computer's hardware settings, for booting up the computer when the power is turned on or when the reset button is activated, and various other system functions.
However, in view of the present invention, the prior art BIOS is deficient in many ways. More specifically, the prior art BIOS implementation consists of a lengthy series of undivided code unable to perform discrete functions or tasks. Additionally, the prior-art BIOS consists of undivided code unable to perform any subset of functions specific to a particular hardware device. If a programmer wishes to amend the prior-art BIOS to add or delete an existing feature or function, or to add or delete hardware, the programmer must search the entire code line-by-line to locate the appropriate code section or sections within the BIOS, thus resulting in an inefficient and time consuming task.
In addition, the prior-art BIOS implementation is unable to cope with the growing complexity and requirements of new computer platforms, components, features, processors, peripherals, applications and/or operating systems. More specifically, complete re-writing of the BIOS code is required for compatibility with new platforms, such as going from Intel Architecture IA32 to IA64 or other future evolutions.
Furthermore, the prior-art BIOS implementation for resource allocation for devices is set to allocate 2X the resource requirement for a device resulting in over allocation and waste of system resources for each device within the computer system.
Therefore, it is readily apparent that there is a need for a new BIOS method that is modular in design allowing for a simplified process for the removal or addition of support for new computer platforms, components, features, processors, peripherals, applications, operating systems and/or avoiding over allocation of system resources.